home *** CD-ROM | disk | FTP | other *** search
/ Aminet 1 (Walnut Creek) / Aminet - June 1993 [Walnut Creek].iso / aminet / hard / hack / ibm_keyboard.lha / key.list < prev    next >
Text File  |  1992-03-25  |  71KB  |  1,192 lines

  1. 000001 0000                  ;* these equates are explained below. Relocate them to any of
  2. 000002 0000                  ;* Port1, pins 0-7 or Port3, pins 0-7, except Port3, pins2 and 3
  3. 000003 0000                  ;* because these are the external interrupts.
  4. 000004 0000                  
  5. 000005 0090                          .equ    Kclk,p1.0
  6. 000006 0091                          .equ    Kdat,p1.1
  7. 000007 0092                          .equ    Kreset,p1.2 
  8. 000008 0093                          .equ    Aclk,p1.3
  9. 000009 0094                          .equ    Adat,p1.4
  10. 000010 0095                          .equ    Areset,p1.5
  11. 000011 0097                          .equ    Kswitch,p1.7
  12. 000012 0000                  
  13. 000013 0000                          .org    0000h
  14. 000014 0000 020200           init:   ljmp    start
  15. 000015 0003                          .org    0003h
  16. 000016 0003 0204D0                   ljmp    resetint
  17. 000017 001B                          .org    001bh
  18. 000018 001B 0205B4                   ljmp    timer1int
  19. 000019 001E                  
  20. 000020 001E                  ;**************************************************
  21. 000021 001E                  ;*
  22. 000022 001E                  ;*
  23. 000023 001E                  ;* Equates Descriptions:
  24. 000024 001E                  ;* 
  25. 000025 001E                  ;*    Watch1 is a flag which tells the IBM keycode parser that
  26. 000026 001E                  ;* some extranneous codes are to come across the lines. In 
  27. 000027 001E                  ;* particular, these codes will be either E0 4A or E0 59. The 
  28. 000028 001E                  ;* parser should ignore them.
  29. 000029 001E                  ;*      Watch2 is also the same type of flag as Watch1. It
  30. 000030 001E                  ;* tells the parser that E0 12 59 will follow and to ignore it.
  31. 000031 001E                  ;*
  32. 000032 001E                  ;*      Aclk is the line to the Amiga keyboard clock in. (P1.3)
  33. 000033 001E                  ;*      Adat is the line to the Amiga keyboard data in. (P1.4)
  34. 000034 001E                  ;*      Areset is the Amiga Reset line (P1.5)
  35. 000035 001E                  ;*      Kclk is the line to the Keyboard clock out (P1.0)
  36. 000036 001E                  ;*      Kdat is the line to the Keyboard data out (P1.1)
  37. 000037 001E                  ;*      Kreset is the Keyboard Reset line (P1.2)
  38. 000038 001E                  ;*      Kstyle is bit defining whether or not the keyboard
  39. 000039 001E                  ;*        is AT or XT. if AT, Kstyle=1
  40. 000040 001E                  ;*
  41. 000041 001E                  ;*      Oldchar is the last character typed to go to the Amiga.
  42. 000042 001E                  ;* This is used to tell if the Capslock was Pressed and 
  43. 000043 001E                  ;* Released without pressing any other keys. If this was done, 
  44. 000044 001E                  ;* then it is a "Caps Lock" otherwise, the Caps key functions
  45. 000045 001E                  ;* as the Control Key because of the keyboard remapping.
  46. 000046 001E                  ;*
  47. 000047 001E                  ;*      Capbit is the flag which tells whether the Caps Lock
  48. 000048 001E                  ;* should be down or up.
  49. 000049 001E                  ;*      Capdown is the flag which tells whether the Caps Lock 
  50. 000050 001E                  ;* KEY is presently down or up. The difference between Capdown 
  51. 000051 001E                  ;* and Capbit is that Capdown relates to the KEY. Capbit toggles 
  52. 000052 001E                  ;* once for every "press and release" of the Cap Lock Key. 
  53. 000053 001E                  ;* Press and release Cap Lock Key, and Capbit goes low.....
  54. 000054 001E                  ;* Press and release it again, and Capbit goes high....
  55. 000055 001E                  ;*      Cntldown is the flag which is set and reset when you 
  56. 000056 001E                  ;* press Cap Lock and then another key. Then, Cap Lock Key 
  57. 000057 001E                  ;* functions as the Control Key.
  58. 000058 001E                  ;* LAMIGA,RAMIGA,and CONTROL are all flags that tell if those 
  59. 000059 001E                  ;* keys are being held down. When all three are, the computer
  60. 000060 001E                  ;* will reset.
  61. 000061 001E                  ;*
  62. 000062 001E                  ;* ATparity is the 10th bit that the AT keyboard transmits. It 
  63. 000063 001E                  ;* is SET if the number of DATA bits set is EVEN. Otherwise, its
  64. 000064 001E                  ;* CLEARED.
  65. 000065 001E                  ;*
  66. 000066 001E                  ;**************************************************
  67. 000067 001E                  
  68. 000068 001E                          ;bit memory locations:
  69. 000069 001E                  
  70. 000070 0042                          .equ    Capbit,42h
  71. 000071 0043                          .equ    Capdown,43h
  72. 000072 0044                          .equ    Ctrldown,44h
  73. 000073 0045                          .equ    CONTROL,45h
  74. 000074 0046                          .equ    LAMIGA,46h
  75. 000075 0047                          .equ    RAMIGA,47h
  76. 000076 0048                          .equ    ATparity,48h
  77. 000077 0049                          .equ    Make,49h
  78. 000078 004A                          .equ    XT7bit,4ah
  79. 000079 004B                          .equ    Kstyle,4bh
  80. 000080 001E                  
  81. 000081 001E                          ;byte memory locations:
  82. 000082 001E                  
  83. 000083 0050                          .equ    Charbad,50h
  84. 000084 0051                          .equ    Oldchar,51h
  85. 000085 0052                          .equ    Amigachar,52h
  86. 000086 001E                  
  87. 000087 0200                          .org    0200h
  88. 000088 0200                  
  89. 000089 0200 758911           start:  mov     tmod,#11h       ;two 16 bit timers
  90. 000090 0203 758805                   mov     tcon,#05h
  91. 000091 0206 75A800                   mov     ie,#00h         ;clear all interrupts
  92. 000092 0209 D2AF                     setb    ea
  93. 000093 020B D2AB                     setb    et1             ;enable timer 1
  94. 000094 020D D2A8                     setb    ex0             ;enable external 0
  95. 000095 020F D2B2                     setb    int0            ;make sure it's high
  96. 000096 0211 D2B9                     setb    pt0
  97. 000097 0213 758130                   mov     sp,#30h         ;stack somewhere safe.
  98. 000098 0216                  
  99. 000099 0216                  ; set the ports for input
  100. 000100 0216 7590FF                   mov     p1,#255         ;set port1 for read
  101. 000101 0219 C28E                     clr     tr1             ;make sure timers are in
  102. 000102 021B C28F                     clr     tf1             ;reset state.
  103. 000103 021D C28C                     clr     tr0
  104. 000104 021F C28D                     clr     tf0
  105. 000105 0221                  
  106. 000106 0221                  ; clear out the miscellaneous flags.
  107. 000107 0221 C243                     clr     Capdown         ;Caps is up...
  108. 000108 0223 C244                     clr     Ctrldown        ;Control is up
  109. 000109 0225 C242                     clr     Capbit          ;Caps light is off.
  110. 000110 0227 D245                     setb    CONTROL         ;all reset keys are UP
  111. 000111 0229 D246                     setb    LAMIGA
  112. 000112 022B D247                     setb    RAMIGA
  113. 000113 022D                  
  114. 000114 022D                  ;**** sync the controller with the Amiga. clock out
  115. 000115 022D                  ;**** ones until we receive a handshake...
  116. 000116 022D                  sync:
  117. 000117 022D 758B00                   mov     tl1,#0          ;set up timer for 143ms
  118. 000118 0230 758D00                   mov     th1,#0
  119. 000119 0233 7902                     mov     r1,#2
  120. 000120 0235 D28E                     setb     tr1
  121. 000121 0237                  sync2:
  122. 000122 0237 2094FD                   jb      Adat,sync2      ;wait for handshake
  123. 000123 023A                  sync3:
  124. 000124 023A 3094FD                   jnb     Adat,sync3      ;wait for end of handshake
  125. 000125 023D C28E                     clr     tr1
  126. 000126 023F                  
  127. 000127 023F                  ;**** transmit power up key stream and end key stream.
  128. 000128 023F 74FD                     mov     a,#0FDh
  129. 000129 0241 B16F                     acall   actualtransmit
  130. 000130 0243 74FE                     mov     a,#0FEh
  131. 000131 0245 B16F                     acall   actualtransmit
  132. 000132 0247                  
  133. 000133 0247                  ;**** test for XT keyboard, if Kswitch is low, automatically
  134. 000134 0247                  ;**** jump to XT mode.
  135. 000135 0247                  ;**** otherwise, test to see if Kdat is low and stays there.
  136. 000136 0247                  ;**** If so, it's in XT mode.                                
  137. 000137 0247 309719                   jnb     Kswitch,XTPowerup 
  138. 000138 024A 20912A                   jb      Kdat,ATPowerup
  139. 000139 024D 758C00                   mov     th0,#0
  140. 000140 0250 758A00                   mov     tl0,#0
  141. 000141 0253 C28D                     clr     tf0
  142. 000142 0255 D28C                     setb    tr0
  143. 000143 0257 208D09           XTtest: jb      tf0,XTPowerup   ;timer ran out. XT mode.
  144. 000144 025A 3091FA                   jnb     Kdat,XTtest     ;data is low, but for how long?
  145. 000145 025D C28C                     clr     tr0
  146. 000146 025F C28D                     clr     tf0
  147. 000147 0261 8014                     sjmp    ATPowerup
  148. 000148 0263                  XTPowerup:
  149. 000149 0263 C24B                     clr     Kstyle          ;XT flag.
  150. 000150 0265 C28D                     clr     tf0
  151. 000151 0267 C290                     clr     Kclk            ;Clock low=Reset for the XT.
  152. 000152 0269                  XTreset:
  153. 000153 0269 308DFD                   jnb     tf0,XTreset
  154. 000154 026C D290                     setb    Kclk
  155. 000155 026E C28C                     clr     tr0
  156. 000156 0270 C28D                     clr     tf0
  157. 000157 0272 715C             ll:     acall   XTgetkey        ;(Should be AA)
  158. 000158 0274 02037A                   ljmp    XTstyle
  159. 000159 0277                  
  160. 000160 0277                  ;**** sync up the AT and go with it!
  161. 000161 0277                  
  162. 000162 0277                  ATPowerup:
  163. 000163 0277 D24B                     setb    Kstyle
  164. 000164 0279 74FF                     mov     a,#0ffh         ;RESET
  165. 000165 027B 711F                     acall   SendtoAT
  166. 000166 027D 74F6                     mov     a,#0f6h         ;DEFAULT
  167. 000167 027F 711F                     acall   SendtoAT
  168. 000168 0281 74ED                     mov     a,#0edh         ;NEXT DATA is FOR LIGHTS
  169. 000169 0283 711F                     acall   SendtoAT
  170. 000170 0285 7402                     mov     a,#2            ;NUMLOCK ON?
  171. 000171 0287 711F                     acall   SendtoAT
  172. 000172 0289 74F4                     mov     a,#0f4h         ;CLEAR BUFFER
  173. 000173 028B 711F                     acall   SendtoAT
  174. 000174 028D 0202CB                   ljmp    ATstyle         ;go and parse AT keyboard
  175. 000175 0290                  
  176. 000176 0290                  ;***********************************************
  177. 000177 0290                  ;* ATgetkey
  178. 000178 0290                  ;* ATgetkey
  179. 000179 0290                  ;* ATgetkey
  180. 000180 0290                  ;*
  181. 000181 0290                  ;* ATgetkey looks at the keyboard and waits for a key to be
  182. 000182 0290                  ;* pressed. ATinkey is the actual routine that watched the logic
  183. 000183 0290                  ;* levels of Kdat and Kclk. IF the character's parity is not 
  184. 000184 0290                  ;* what it is supposed to be, then the routine will attempt to
  185. 000185 0290                  ;* tell the keyboard to resend.
  186. 000186 0290                  ;*
  187. 000187 0290                  ;* When exiting from this routine, Kclock is pulled low to hold 
  188. 000188 0290                  ;* off any more transmissions. You must restore it to 5 volts to
  189. 000189 0290                  ;* receive any more characters later.
  190. 000190 0290                  ;*
  191. 000191 0290                  ;*
  192. 000192 0290                  
  193. 000193 0290                  ATgetkey:
  194. 000194 0290 780B                     mov     r0,#11          ;number of bits
  195. 000195 0292 D290                     setb    Kclk
  196. 000196 0294                  ATwaitC0:         
  197. 000197 0294 2090FD                   jb      Kclk,ATwaitC0   ;wait for a clock pulse
  198. 000198 0297 18                       dec     r0              ;decrement clock bit counter
  199. 000199 0298 B80A02                   cjne    r0,#10,ATnstart ;test for startbit
  200. 000200 029B 8029                     sjmp    ATwait  
  201. 000201 029D                  ATnstart:
  202. 000202 029D B8001A                   cjne    r0,#0,ATnstop   ;check for stopbit      
  203. 000203 02A0                  ATwaitC1:
  204. 000204 02A0 3090FD                   jnb     Kclk,ATwaitC1   ;wait for clock to go high                     
  205. 000205 02A3 C290                     clr     Kclk            ;hold off more data
  206. 000206 02A5 7814                     mov     r0,#20          ;small delay
  207. 000207 02A7 D8FE             pause:  djnz    r0,pause
  208. 000208 02A9                  ;**** now we check to see if the parity between
  209. 000209 02A9                  ;**** Bit register P (which is set if Parity of Acc is odd)
  210. 000210 02A9                  ;**** is compared to the received Parity Bit.
  211. 000211 02A9 20D004                   jb      p,parityodd     ;test if parity of DATA is odd
  212. 000212 02AC                  parityeven:
  213. 000213 02AC 304805                   jnb     ATparity,ATerror
  214. 000214 02AF 22                       ret                     ;Okay to return. A=valid
  215. 000215 02B0                  parityodd:
  216. 000216 02B0 204801                   jb      ATparity,ATerror
  217. 000217 02B3 22                       ret                     ;Okay to return. A=valid
  218. 000218 02B4                  ATerror:
  219. 000219 02B4 74FE                     mov     a,#0feh         ;RESEND character
  220. 000220 02B6 711F                     acall   SendtoAT
  221. 000221 02B8 80D6                     sjmp    ATgetkey        ;now return to caller
  222. 000222 02BA                  ATnstop:
  223. 000223 02BA B80106                   cjne    r0,#1,ATdatab   ;check for paritybit
  224. 000224 02BD A291                     mov     c,Kdat          ;error checking! (AT only)
  225. 000225 02BF 9248                     mov     ATparity,c
  226. 000226 02C1 8003                     sjmp    ATwait          ;
  227. 000227 02C3                  ATdatab: 
  228. 000228 02C3 A291                     mov     c,Kdat          ;get data bit
  229. 000229 02C5 13                       rrc     a               ;shift it into accumulator
  230. 000230 02C6 3090FD           ATwait: jnb     Kclk,ATwait     ;wait for clock line to go low
  231. 000231 02C9 80C9                     sjmp    ATwaitC0        ;get another bit
  232. 000232 02CB                  
  233. 000233 02CB                  
  234. 000234 02CB                  ;**************************************************
  235. 000235 02CB                  ;* AT-STYLE
  236. 000236 02CB                  ;*
  237. 000237 02CB                  ;*     This waits for a keycode or two from the IBM and then calls
  238. 000238 02CB                  ;* the appropriate transmit subroutine. The IBM keyboard sends 
  239. 000239 02CB                  ;* out special codes in front of and behind some scancodes. This
  240. 000240 02CB                  ;* routine will chop them out before doing a lookup on the 
  241. 000241 02CB                  ;* code to see what to send to the AMIGA. The scancodes between 
  242. 000242 02CB                  ;* the IBM and the AMIGA are of course, not the same!
  243. 000243 02CB                  ;*
  244. 000244 02CB                  ;**************************************************
  245. 000245 02CB                  
  246. 000246 02CB                  ATstyle:
  247. 000247 02CB 5190                     acall   ATgetkey          ;get one scancode.
  248. 000248 02CD B4E110                   cjne    a,#0e1h,ATnE1
  249. 000249 02D0 5190                     acall   ATgetkey          ;(should be 14)
  250. 000250 02D2 5190                     acall   ATgetkey          ;(should be 77)
  251. 000251 02D4 5190                     acall   ATgetkey          ;(should be E1)
  252. 000252 02D6 5190                     acall   ATgetkey          ;(should be F0)
  253. 000253 02D8 5190                     acall   ATgetkey          ;(should be 14)
  254. 000254 02DA 5190                     acall   ATgetkey          ;(should be F0)
  255. 000255 02DC 5190                     acall   ATgetkey          ;(should be 77)
  256. 000256 02DE 80EB                     sjmp    ATstyle
  257. 000257 02E0                  ;PAUSE was pressed. Just ignore it.
  258. 000258 02E0                  ATnE1:
  259. 000259 02E0 9005D5                   mov     dptr,#ATtb1
  260. 000260 02E3 B4E022                   cjne    a,#0e0h,ATnE0
  261. 000261 02E6 900655                   mov     dptr,#ATtb2
  262. 000262 02E9 5190                     acall   ATgetkey
  263. 000263 02EB B4F00E                   cjne    a,#0f0h,ATnE0F0
  264. 000264 02EE 5190                     acall   ATgetkey
  265. 000265 02F0 B41203                   cjne    a,#12h,ATnEF12
  266. 000266 02F3 0202CB                   ljmp    ATstyle         ;(E0F012....ignore it)
  267. 000267 02F6                  ATnEF12:
  268. 000268 02F6 B4591E                   cjne    a,#59h,ATup     ;(E0F0mk)
  269. 000269 02F9 0202CB                   ljmp    ATstyle         ;(E0F059....ignore it)
  270. 000270 02FC                  ATnE0F0:
  271. 000271 02FC B41203                   cjne    a,#12h,ATnE012
  272. 000272 02FF 0202CB                   ljmp    ATstyle         ;(E012....ignore it)
  273. 000273 0302                  ATnE012:
  274. 000274 0302 B4590A                   cjne    a,#59h,ATdown   ;(E0mk)
  275. 000275 0305 0202CB                   ljmp    ATstyle         ;(E059....ignore it)
  276. 000276 0308                  ATnE0:
  277. 000277 0308 B4F004                   cjne    a,#0f0h,ATdown  ;(mk)
  278. 000278 030B 5190                     acall   ATgetkey
  279. 000279 030D 8008                     sjmp    ATup            ;(F0mk....normal key break)
  280. 000280 030F                  
  281. 000281 030F                  ;**************************************************
  282. 000282 030F                  ;* ATdown and the rest here call a lookup table to change
  283. 000283 030F                  ;* the AT scancodes into AMIGA scancodes. In the "down"
  284. 000284 030F                  ;* routine, the "make" bit is asserted. In the "up" routine
  285. 000285 030F                  ;* it is de-asserted.
  286. 000286 030F                  ;**************************************************
  287. 000287 030F                  ATdown:
  288. 000288 030F 93                       movc    a,@a+dptr       ;indexed into table
  289. 000289 0310 C2E7                     clr     acc.7           ;clear make/break bit
  290. 000290 0312 71BF                     acall   transmit        ;transmit it
  291. 000291 0314 0202CB                   ljmp    ATstyle
  292. 000292 0317                  ATup:
  293. 000293 0317 93                       movc    a,@a+dptr
  294. 000294 0318 D2E7                     setb    acc.7           ;set make/break bit
  295. 000295 031A 71BF                     acall   transmit        ;transmit it
  296. 000296 031C 0202CB                   ljmp    ATstyle
  297. 000297 031F                  
  298. 000298 031F                  ;**************************************************
  299. 000299 031F                  ;* SendtoAT is the subroutine that sends special codes
  300. 000300 031F                  ;* to the keyboard from the controller. Codes include
  301. 000301 031F                  ;* the command to reset (FF) or the command to change
  302. 000302 031F                  ;* the lights (ED). It is advisable to keep the timing
  303. 000303 031F                  ;* very close to how I have it done in this routine.
  304. 000304 031F                  ;**************************************************
  305. 000305 031F                  
  306. 000306 031F                  SendtoAT:
  307. 000307 031F D290                     setb    Kclk
  308. 000308 0321 C291                     clr     Kdat
  309. 000309 0323 7808                     mov     r0,#8
  310. 000310 0325 2090FD           Send4:  jb      Kclk,Send4      ;data bit
  311. 000311 0328 A2E0                     mov     c,acc.0
  312. 000312 032A 9291                     mov     Kdat,c
  313. 000313 032C 03                       rr      a 
  314. 000314 032D 3090FD           Send5:  jnb     Kclk,Send5      ;data bit
  315. 000315 0330 18                       dec     r0
  316. 000316 0331 B800F1                   cjne    r0,#0,Send4
  317. 000317 0334 A2D0                     mov     c,p
  318. 000318 0336 B3                       cpl     c
  319. 000319 0337 2090FD           Send6:  jb      Kclk,Send6      ;parity bit
  320. 000320 033A 9291                     mov     Kdat,c
  321. 000321 033C 3090FD           Send7:  jnb     Kclk,Send7      ;parity bit
  322. 000322 033F 2090FD           Send77: jb      Kclk,Send77     ;stop bit
  323. 000323 0342 D291                     setb    Kdat
  324. 000324 0344 3090FD           Send78: jnb     Kclk,Send78     ;stop bit
  325. 000325 0347 2090FD           Send79: jb      Kclk,Send79
  326. 000326 034A 3090FD           Send7a: jnb     Kclk,Send7a
  327. 000327 034D 7808                     mov     r0,#8           ;small delay
  328. 000328 034F D8FE             Send8:  djnz    r0,Send8
  329. 000329 0351 C290                     clr     Kclk            ;drive clock low
  330. 000330 0353 7814                     mov     r0,#20          ;long delay
  331. 000331 0355 D8FE             Send9:  djnz    r0,Send9
  332. 000332 0357 D290                     setb    Kclk
  333. 000333 0359 5190                     acall   ATgetkey        ;should check if response isbad.
  334. 000334 035B 22                       ret                     ;who cares if it is? not me!
  335. 000335 035C                  
  336. 000336 035C                  XTgetkey:
  337. 000337 035C D291                     setb    Kdat            ;let data flow!
  338. 000338 035E 7808                     mov     r0,#8
  339. 000339 0360 2090FD           XTw1:   jb      Kclk,XTw1       ;start bit1
  340. 000340 0363 3090FD           XTw2:   jnb     Kclk,XTw2       ;start bit1
  341. 000341 0366 2090FD           XTw3:   jb      Kclk,XTw3       ;start bit2
  342. 000342 0369 3090FD           XTw4:   jnb     Kclk,XTw4       ;start bit2
  343. 000343 036C 2090FD           XTw5:   jb      Kclk,XTw5       ;data bit
  344. 000344 036F A291                     mov     c,Kdat
  345. 000345 0371 13                       rrc     a
  346. 000346 0372 3090FD           XTw6:   jnb     Kclk,XTw6       ;data bit
  347. 000347 0375 D8F5                     djnz    r0,XTw5
  348. 000348 0377 C291                     clr     Kdat            ;hold off data
  349. 000349 0379 22                       ret
  350. 000350 037A                  
  351. 000351 037A                  XTstyle:
  352. 000352 037A 715C                     acall   XTgetkey
  353. 000353 037C B4E10C                   cjne    a,#0e1h,XTnE1
  354. 000354 037F 715C                     acall   XTgetkey        ;(should be 1d)
  355. 000355 0381 715C                     acall   XTgetkey        ;(should be 45)
  356. 000356 0383 715C                     acall   XTgetkey        ;(should be e1)
  357. 000357 0385 715C                     acall   XTgetkey        ;(should be 9d)
  358. 000358 0387 715C                     acall   XTgetkey        ;(should be c5)
  359. 000359 0389 80EF                     sjmp    XTstyle
  360. 000360 038B                  XTnE1:
  361. 000361 038B B4E029                   cjne    a,#0e0h,XTnE0
  362. 000362 038E 715C                     acall   XTgetkey
  363. 000363 0390 B4AA02                   cjne    a,#0aah,XTnAA
  364. 000364 0393 80E5                     sjmp    XTstyle
  365. 000365 0395                  XTnAA:
  366. 000366 0395 B42A02                   cjne    a,#2ah,XTn2A
  367. 000367 0398 80E0                     sjmp    XTstyle
  368. 000368 039A                  XTn2A:
  369. 000369 039A B4B602                   cjne    a,#0b6h,XTnB6
  370. 000370 039D 80DB                     sjmp    XTstyle
  371. 000371 039F                  XTnB6:
  372. 000372 039F B43602                   cjne    a,#36h,XTn36
  373. 000373 03A2 80D6                     sjmp    XTstyle
  374. 000374 03A4                  XTn36:
  375. 000375 03A4 900755                   mov     dptr,#XTtb2
  376. 000376 03A7                  XTlookup:
  377. 000377 03A7 A2E7                     mov     c,acc.7         ;(1=break)
  378. 000378 03A9 924A                     mov     XT7bit,c
  379. 000379 03AB C2E7                     clr     acc.7
  380. 000380 03AD 93                       movc    a,@a+dptr
  381. 000381 03AE A24A                     mov     c,XT7bit
  382. 000382 03B0 92E7                     mov     acc.7,c
  383. 000383 03B2 71BF                     acall   transmit
  384. 000384 03B4 02037A                   ljmp    XTstyle
  385. 000385 03B7                  XTnE0:
  386. 000386 03B7 9006D5                   mov     dptr,#XTtb1
  387. 000387 03BA 80EB                     sjmp    XTlookup
  388. 000388 03BC                  
  389. 000389 03BC                  ;**************************************************
  390. 000390 03BC                  ;*
  391. 000391 03BC                  ;* TRANSMIT first does some checking to take out repeating
  392. 000392 03BC                  ;* keys and does the conversion on the Caps Lock Key and
  393. 000393 03BC                  ;* then calls Actualtransmit.
  394. 000394 03BC                  ;*
  395. 000395 03BC                  ;**************************************************
  396. 000396 03BC                  
  397. 000397 03BC                  dontrans:                       ;jumps back if key is already
  398. 000398 03BC D0E0                     pop     acc             ;held down.
  399. 000399 03BE 22                       ret
  400. 000400 03BF                  transmit:
  401. 000401 03BF B55101                   cjne    a,Oldchar,transok
  402. 000402 03C2 22                       ret
  403. 000403 03C3                  transok:
  404. 000404 03C3 B46205                   cjne    a,#62h,transok2 ;jump if not CapsLock=down
  405. 000405 03C6 F551                     mov     Oldchar,a
  406. 000406 03C8 D243                     setb    Capdown         ;set the flags for later
  407. 000407 03CA 22                       ret
  408. 000408 03CB                  transok2:                       
  409. 000409 03CB B4E230                   cjne    a,#0e2h,transok3;jump if not CapsLock=up
  410. 000410 03CE E551                     mov     a,Oldchar       ;see if Caps was just down
  411. 000411 03D0 304B03                   jnb     Kstyle,XTcap    ;if XT, skip control feature.
  412. 000412 03D3 B4621D                   cjne    a,#62h,transok4 ;if not, then it was a control
  413. 000413 03D6                  XTcap:
  414. 000414 03D6 C243                     clr     Capdown         ;clear flag
  415. 000415 03D8 B242                     cpl     Capbit          ;toggle down/up-ness of Caplock
  416. 000416 03DA 7462                     mov     a,#62h
  417. 000417 03DC A242                     mov     c,Capbit
  418. 000418 03DE B3                       cpl     c
  419. 000419 03DF 92E7                     mov     acc.7,c
  420. 000420 03E1 B16F                     acall   actualtransmit  ;(Caps to Amiga!)
  421. 000421 03E3 304B0C                   jnb     Kstyle,skiplights ;(don't do lights if XT)
  422. 000422 03E6 74ED                     mov     a,#0edh         ;set lights on next byte.
  423. 000423 03E8 711F                     acall   SendtoAT
  424. 000424 03EA 7402                     mov     a,#2            ;numlock on
  425. 000425 03EC A242                     mov     c,Capbit
  426. 000426 03EE 92E2                     mov     acc.2,c
  427. 000427 03F0 711F                     acall   SendtoAT        ;maybe capslock light
  428. 000428 03F2                  skiplights: 
  429. 000429 03F2 22                       ret           
  430. 000430 03F3                  transok4:
  431. 000431 03F3 C244                     clr     CtrlDown        ;This sends out a Control Up.
  432. 000432 03F5 C243                     clr     Capdown         ;Caps lock is done functioning as Ctl
  433. 000433 03F7 7463                     mov     a,#63h          ;Control Key
  434. 000434 03F9 D2E7                     setb    acc.7           ;break bit set.
  435. 000435 03FB B16F                     acall   actualtransmit  ;send to Amiga.
  436. 000436 03FD 22                       ret
  437. 000437 03FE                  transok3:
  438. 000438 03FE F551                     mov     Oldchar,a
  439. 000439 0400 304B0E                   jnb     Kstyle,noControl
  440. 000440 0403 30430B                   jnb     Capdown,noControl
  441. 000441 0406 204408                   jb      CtrlDown,noControl
  442. 000442 0409 D244                     setb    CtrlDown        ;Caps lock is beginning to function
  443. 000443 040B 7463                     mov     a,#63h          ;as the Control Key.
  444. 000444 040D B16F                     acall   actualtransmit  ;send Control Down to Amiga
  445. 000445 040F E551                     mov     a,Oldchar       ;now send the actual key
  446. 000446 0411                  
  447. 000447 0411                  noControl:                      ;its not a controlled key
  448. 000448 0411 A2E7                     mov     c,acc.7         ;c=make/break bit
  449. 000449 0413 9249                     mov     Make,c          ;will be set if key up
  450. 000450 0415 C2E7                     clr     acc.7           ;test for key only. NO make/break
  451. 000451 0417 B40E19                   cjne    a,#0eh,noMup    ;special key mouse up
  452. 000452 041A 30490B                   jnb     Make,kmupdown
  453. 000453 041D                  kmupup:
  454. 000454 041D 74CC                     mov     a,#0cch         ;cursor up break
  455. 000455 041F B16F                     acall   actualtransmit
  456. 000456 0421 9187                     acall   Smalldelay
  457. 000457 0423 74E7                     mov     a,#0e7h         ;right amiga break
  458. 000458 0425 B16F                     acall   actualtransmit
  459. 000459 0427 22                       ret
  460. 000460 0428                  kmupdown:
  461. 000461 0428 7467                     mov     a,#67h          ;amiga make
  462. 000462 042A B16F                     acall   actualtransmit
  463. 000463 042C 9187                     acall   Smalldelay
  464. 000464 042E 744C                     mov     a,#4ch          ;cursor up make
  465. 000465 0430 B16F                     acall   actualtransmit
  466. 000466 0432 22                       ret
  467. 000467 0433                  noMup:
  468. 000468 0433 B41C19                   cjne    a,#1ch,noMdown  ;special key mouse down
  469. 000469 0436 30490B                   jnb     Make,kmdowndown
  470. 000470 0439                  kmdownup:
  471. 000471 0439 74CD                     mov     a,#0cdh         ;cursor down break
  472. 000472 043B B16F                     acall   actualtransmit
  473. 000473 043D 74E7                     mov     a,#0e7h         ;amiga break
  474. 000474 043F 9187                     acall   Smalldelay
  475. 000475 0441 B16F                     acall   actualtransmit
  476. 000476 0443 22                       ret
  477. 000477 0444                  kmdowndown:
  478. 000478 0444 7467                     mov     a,#67h          ;amiga make
  479. 000479 0446 B16F                     acall   actualtransmit
  480. 000480 0448 9187                     acall   Smalldelay      ;cursor down make
  481. 000481 044A 744D                     mov     a,#4dh
  482. 000482 044C B16F                     acall   actualtransmit
  483. 000483 044E 22                       ret
  484. 000484 044F                  noMdown:
  485. 000485 044F B42C19                   cjne    a,#2ch,noMleft  ;special key mouse left
  486. 000486 0452 30490B                   jnb     Make,kmleftdown
  487. 000487 0455                  kmleftup:
  488. 000488 0455 74CF                     mov     a,#0cfh         ;cursor left break
  489. 000489 0457 B16F                     acall   actualtransmit
  490. 000490 0459 9187                     acall   Smalldelay      ;amiga break
  491. 000491 045B 74E7                     mov     a,#0e7h
  492. 000492 045D B16F                     acall   actualtransmit
  493. 000493 045F 22                       ret
  494. 000494 0460                  kmleftdown:
  495. 000495 0460 7467                     mov     a,#67h          ;amiga make
  496. 000496 0462 B16F                     acall   actualtransmit
  497. 000497 0464 9187                     acall   Smalldelay
  498. 000498 0466 744F                     mov     a,#4fh          ;cursor left make
  499. 000499 0468 B16F                     acall   actualtransmit
  500. 000500 046A 22                       ret
  501. 000501 046B                  noMleft:                        ;special key mouse right
  502. 000502 046B B4472B                   cjne    a,#47h,notspecial
  503. 000503 046E 30490B                   jnb     Make,kmrhtdown
  504. 000504 0471                  kmrhtup:
  505. 000505 0471 74CE                     mov     a,#0ceh         ;cursor right break
  506. 000506 0473 B16F                     acall   actualtransmit
  507. 000507 0475 9187                     acall   Smalldelay
  508. 000508 0477 74E7                     mov     a,#0e7h         ;amiga break
  509. 000509 0479 B16F                     acall   actualtransmit
  510. 000510 047B 22                       ret
  511. 000511 047C                  kmrhtdown:
  512. 000512 047C 7467                     mov     a,#67h          ;amiga make
  513. 000513 047E B16F                     acall   actualtransmit
  514. 000514 0480 9187                     acall   Smalldelay
  515. 000515 0482 744E                     mov     a,#04eh         ;cursor right make
  516. 000516 0484 B16F                     acall   actualtransmit
  517. 000517 0486 22                       ret
  518. 000518 0487                  Smalldelay:
  519. 000519 0487 758C00                   mov     th0,#0
  520. 000520 048A 758A00                   mov     tl0,#0
  521. 000521 048D C28D                     clr     tf0
  522. 000522 048F D28C                     setb    tr0
  523. 000523 0491 308DFD           small1: jnb     tf0,small1
  524. 000524 0494 C28D                     clr     tf0
  525. 000525 0496 C28C                     clr     tr0
  526. 000526 0498 22                       ret
  527. 000527 0499                  notspecial:
  528. 000528 0499 E551                     mov     a,Oldchar
  529. 000529 049B B16F                     acall   actualtransmit  ;transmit the keycode
  530. 000530 049D E551                     mov     a,Oldchar       ;get back same keycode, in A.
  531. 000531 049F A2E7                     mov     c,acc.7         ;put make/break bit in Make
  532. 000532 04A1 9249                     mov     Make,c
  533. 000533 04A3 C2E7                     clr     acc.7           ;start testing for reset keys
  534. 000534 04A5 B46306                   cjne    a,#63h,nrset1   ;held down
  535. 000535 04A8 A249                     mov     c,Make
  536. 000536 04AA 9245                     mov     CONTROL,c
  537. 000537 04AC 8010                     sjmp    trset
  538. 000538 04AE B46606           nrset1: cjne    a,#66h,nrset2
  539. 000539 04B1 A249                     mov     c,Make
  540. 000540 04B3 9246                     mov     LAMIGA,c
  541. 000541 04B5 8007                     sjmp    trset
  542. 000542 04B7 B46704           nrset2: cjne    a,#67h,trset
  543. 000543 04BA A249                     mov     c,Make
  544. 000544 04BC 9247                     mov     RAMIGA,c
  545. 000545 04BE 304505           trset:  jnb     CONTROL,maybefree       ;if bit set, this key is up
  546. 000546 04C1 204402                   jb      CtrlDown,maybefree      ;if bit set, this key is down
  547. 000547 04C4 8008                     sjmp    free
  548. 000548 04C6                  maybefree:
  549. 000549 04C6 204605                   jb      LAMIGA,free     ;ditto
  550. 000550 04C9 204702                   jb      RAMIGA,free     ;ditto
  551. 000551 04CC 8004                     sjmp    resetwarn       ;OOPS! They are all down!
  552. 000552 04CE 22               free:   ret
  553. 000553 04CF                  dummy:
  554. 000554 04CF 32                       reti
  555. 000555 04D0                  resetint:
  556. 000556 04D0 91CF                     acall   dummy
  557. 000557 04D2                  resetwarn:
  558. 000558 04D2 C28D                     clr     tf0             
  559. 000559 04D4 E578                     mov     a,78h
  560. 000560 04D6 7902                     mov     r1,#2           ;set up timer 0 watchdog
  561. 000561 04D8 758A00                   mov     tl0,#0
  562. 000562 04DB 758C00                   mov     th0,#0
  563. 000563 04DE F4                       cpl     a               ;invert, don't know why.
  564. 000564 04DF 7808                     mov     r0,#8
  565. 000565 04E1                  wr1:
  566. 000566 04E1 23                       rl      a
  567. 000567 04E2 A2E7                     mov     c,acc.7
  568. 000568 04E4 9294                     mov     Adat,c
  569. 000569 04E6 75F008                   mov     b,#8
  570. 000570 04E9                  wr2:
  571. 000571 04E9 D5F0FD                   djnz    b,wr2             ; transmit it.
  572. 000572 04EC C293                     clr     Aclk
  573. 000573 04EE 75F008                   mov     b,#8
  574. 000574 04F1                  wr3:
  575. 000575 04F1 D5F0FD                   djnz    b,wr3
  576. 000576 04F4 D293                     setb    Aclk
  577. 000577 04F6 75F00A                   mov     b,#10
  578. 000578 04F9                  wr4:
  579. 000579 04F9 D5F0FD                   djnz    b,wr4
  580. 000580 04FC D8E3                     djnz    r0,wr1
  581. 000581 04FE D294                     setb    Adat
  582. 000582 0500 D28C                     setb    tr0             ;start watchdog
  583. 000583 0502                  wr5:
  584. 000584 0502 309409                   jnb     Adat,caught1
  585. 000585 0505 308DFA                   jnb     tf0,wr5
  586. 000586 0508 C28D                     clr     tf0
  587. 000587 050A D9F6                     djnz    r1,wr5
  588. 000588 050C 8041                     sjmp    Hardreset
  589. 000589 050E                  caught1:
  590. 000590 050E C28C                     clr     tr0
  591. 000591 0510 C28D                     clr     tf0
  592. 000592 0512 E578                     mov     a,78h
  593. 000593 0514 7904                     mov     r1,#4
  594. 000594 0516 758A00                   mov     tl0,#0
  595. 000595 0519 758C00                   mov     th0,#0
  596. 000596 051C F4                       cpl     a    
  597. 000597 051D 7808                     mov     r0,#8
  598. 000598 051F                  wr11:
  599. 000599 051F 23                       rl      a
  600. 000600 0520 A2E7                     mov     c,acc.7
  601. 000601 0522 9294                     mov     Adat,c
  602. 000602 0524 75F008                   mov     b,#8
  603. 000603 0527                  wr22:
  604. 000604 0527 D5F0FD                   djnz    b,wr22   
  605. 000605 052A C293                     clr     Aclk
  606. 000606 052C 75F008                   mov     b,#8
  607. 000607 052F                  wr33:
  608. 000608 052F D5F0FD                   djnz    b,wr33
  609. 000609 0532 D293                     setb    Aclk
  610. 000610 0534 75F00A                   mov     b,#10
  611. 000611 0537                  wr44:
  612. 000612 0537 D5F0FD                   djnz    b,wr44
  613. 000613 053A D8E3                     djnz    r0,wr11
  614. 000614 053C D294                     setb    Adat
  615. 000615 053E D28C                     setb    tr0             ;start watchdog
  616. 000616 0540                  wr55:
  617. 000617 0540 309409                   jnb     Adat,caught2
  618. 000618 0543 308DFA                   jnb     tf0,wr55
  619. 000619 0546 C28D                     clr     tf0
  620. 000620 0548 D9F6                     djnz    r1,wr55
  621. 000621 054A 8003                     sjmp    Hardreset
  622. 000622 054C                  caught2:
  623. 000623 054C 3094FD           hold:   jnb     Adat,hold
  624. 000624 054F                  Hardreset:
  625. 000625 054F C28C                     clr     tr0
  626. 000626 0551 C28D                     clr     tf0
  627. 000627 0553 C295                     clr     Areset
  628. 000628 0555 C293                     clr     Aclk            ;clear both lines for A500/A1000
  629. 000629 0557 790F                     mov     r1,#15          ;clock should go low for over 500ms
  630. 000630 0559 758C00                   mov     th0,#0          ;timer 1 will overflow repeatedly
  631. 000631 055C 758A00                   mov     tl0,#0
  632. 000632 055F D28C                     setb    tr0
  633. 000633 0561                  hsloop:
  634. 000634 0561 308DFD                   jnb     tf0,hsloop      ;wait for overflow flag
  635. 000635 0564 C28D                     clr     tf0             ;clear it again
  636. 000636 0566 D9F9                     djnz    r1,hsloop
  637. 000637 0568 C28D                     clr     tf0
  638. 000638 056A C28C                     clr     tr0             ;stop the timer
  639. 000639 056C 020200                   ljmp    start
  640. 000640 056F                   
  641. 000641 056F                  ;**************************************************
  642. 000642 056F                  ;* 
  643. 000643 056F                  ;* ActualTransmit sends the character out to the Amiga and waits
  644. 000644 056F                  ;* for an acknowledge handshake. If it does not receive one in
  645. 000645 056F                  ;* 143 ms, then it clocks out 1's on the data line until it 
  646. 000646 056F                  ;* receives the acknowledge. If the Amiga is not connected up, 
  647. 000647 056F                  ;* then it will hang here. The handshake is that the AMIGA 
  648. 000648 056F                  ;* drives the clock line low.
  649. 000649 056F                  ;*
  650. 000650 056F                  ;*      The loops with register B are for timing delays. 
  651. 000651 056F                  ;* There should be about 20usec between when the Data line is 
  652. 000652 056F                  ;* set, the Clock line is driven low, and the Clock line
  653. 000653 056F                  ;* is driven high.
  654. 000654 056F                  ;*
  655. 000655 056F                  ;**************************************************
  656. 000656 056F                  
  657. 000657 056F                  actualtransmit:
  658. 000658 056F F552                     mov     Amigachar,a     ;set the character to transmit
  659. 000659 0571                  
  660. 000660 0571 7805                     mov     r0,#05          ;do a small delay
  661. 000661 0573                  dly:
  662. 000662 0573 75F000                   mov     b,#0
  663. 000663 0576 D5F0FD           delay:  djnz    b,delay
  664. 000664 0579 D8F8                     djnz    r0,dly
  665. 000665 057B                  
  666. 000666 057B                  actual2:
  667. 000667 057B E552                     mov     a,Amigachar     ;restore it
  668. 000668 057D C250                     clr     Charbad         ;character is not bad yet
  669. 000669 057F 7902                     mov     r1,#2           ;set up timer 0 watchdog
  670. 000670 0581 758B00                   mov     tl1,#0
  671. 000671 0584 758D00                   mov     th1,#0
  672. 000672 0587 F4                       cpl     a               ;invert, don't know why.
  673. 000673 0588 7808                     mov     r0,#8
  674. 000674 058A 23               f:      rl      a
  675. 000675 058B A2E7                     mov     c,acc.7
  676. 000676 058D 9294                     mov     Adat,c
  677. 000677 058F 75F008                   mov     b,#8
  678. 000678 0592 D5F0FD           g:      djnz    b,g             ; transmit it.
  679. 000679 0595 C293                     clr     Aclk
  680. 000680 0597 75F008                   mov     b,#8
  681. 000681 059A D5F0FD           h:      djnz    b,h
  682. 000682 059D D293                     setb    Aclk
  683. 000683 059F 75F00A                   mov     b,#10
  684. 000684 05A2 D5F0FD           i:      djnz    b,i
  685. 000685 05A5 D8E3                     djnz    r0,f
  686. 000686 05A7 D294                     setb    Adat
  687. 000687 05A9 D28E                     setb    tr1             ;start watchdog
  688. 000688 05AB                  waitshake:
  689. 000689 05AB 2094FD                   jb      Adat,waitshake
  690. 000690 05AE C28E                     clr     tr1             ;stop watchdog
  691. 000691 05B0 3094FD           gotit:  jnb     Adat,gotit
  692. 000692 05B3 22                       ret
  693. 000693 05B4                  
  694. 000694 05B4                  timer1int:
  695. 000695 05B4 D91E                     djnz    r1,t3           ;we wait for 143 ms.
  696. 000696 05B6 7902                     mov     r1,#2           
  697. 000697 05B8 D250                     setb    Charbad         ;flag to resend the character
  698. 000698 05BA C294                     clr     Adat            ;1 on the data line
  699. 000699 05BC 75F008                   mov     b,#8
  700. 000700 05BF D5F0FD           tt1:    djnz    b,tt1           ;wait for it
  701. 000701 05C2 C293                     clr     Aclk            ;clock asserted
  702. 000702 05C4 75F008                   mov     b,#8            ;sync up the controller to the
  703. 000703 05C7 D5F0FD           tt2:    djnz    b,tt2           ;amiga
  704. 000704 05CA D293                     setb    Aclk
  705. 000705 05CC 75F00A                   mov     b,#10
  706. 000706 05CF D5F0FD           tt3:    djnz    b,tt3
  707. 000707 05D2 D294                     setb    Adat
  708. 000708 05D4 32               t3:     reti                    ;return and send again.
  709. 000709 05D5                  
  710. 000710 05D5                  ATtb1: 
  711. 000711 05D5 00                       .db     0               
  712. 000712 05D6 58                       .db     58h             ;F9
  713. 000713 05D7 00                       .db     0               
  714. 000714 05D8 54                       .db     54h             ;F5
  715. 000715 05D9 52                       .db     52h             ;F3
  716. 000716 05DA 50                       .db     50h             ;F1
  717. 000717 05DB 51                       .db     51h             ;F2
  718. 000718 05DC 5B                       .db     5bh             ;F12=right parenthesis
  719. 000719 05DD 00                       .db     0
  720. 000720 05DE 59                       .db     59h             ;F10
  721. 000721 05DF 57                       .db     57h             ;F8
  722. 000722 05E0 55                       .db     55h             ;F6
  723. 000723 05E1 53                       .db     53h             ;F4
  724. 000724 05E2 42                       .db     42h             ;TAB
  725. 000725 05E3 00                       .db     00h             ;~
  726. 000726 05E4 00                       .db     0
  727. 000727 05E5                  
  728. 000728 05E5 00                       .db     0
  729. 000729 05E6 64                       .db     64h             ;Left ALT
  730. 000730 05E7 60                       .db     60h             ;Left SHIFT
  731. 000731 05E8 00                       .db     0
  732. 000732 05E9 66                       .db     66h             ;Left Ctrl=Left AMIGA
  733. 000733 05EA 10                       .db     10h             ;Q
  734. 000734 05EB 01                       .db     01h             ;1
  735. 000735 05EC 00                       .db     0
  736. 000736 05ED 00                       .db     0
  737. 000737 05EE 00                       .db     0
  738. 000738 05EF 31                       .db     31h             ;Z
  739. 000739 05F0 21                       .db     21h             ;S
  740. 000740 05F1 20                       .db     20h             ;A
  741. 000741 05F2 11                       .db     11h             ;W
  742. 000742 05F3 02                       .db     02h             ;2
  743. 000743 05F4 00                       .db     0
  744. 000744 05F5                  
  745. 000745 05F5 00                       .db     0
  746. 000746 05F6 33                       .db     33h             ;C
  747. 000747 05F7 32                       .db     32h             ;X
  748. 000748 05F8 22                       .db     22h             ;D
  749. 000749 05F9 12                       .db     12h             ;E
  750. 000750 05FA 04                       .db     04h             ;4
  751. 000751 05FB 03                       .db     03h             ;3
  752. 000752 05FC 00                       .db     0
  753. 000753 05FD 00                       .db     0
  754. 000754 05FE 40                       .db     40h             ;SPACE
  755. 000755 05FF 34                       .db     34h             ;V
  756. 000756 0600 23                       .db     23h             ;F
  757. 000757 0601 14                       .db     14h             ;T
  758. 000758 0602 13                       .db     13h             ;R
  759. 000759 0603 05                       .db     05h             ;5
  760. 000760 0604 00                       .db     0
  761. 000761 0605                  
  762. 000762 0605 00                       .db     0
  763. 000763 0606 36                       .db     36h             ;N
  764. 000764 0607 35                       .db     35h             ;B
  765. 000765 0608 25                       .db     25h             ;H
  766. 000766 0609 24                       .db     24h             ;G
  767. 000767 060A 15                       .db     15h             ;Y
  768. 000768 060B 06                       .db     06h             ;6
  769. 000769 060C 00                       .db     0
  770. 000770 060D 00                       .db     0
  771. 000771 060E 00                       .db     0
  772. 000772 060F 37                       .db     37h             ;M
  773. 000773 0610 26                       .db     26h             ;J
  774. 000774 0611 16                       .db     16h             ;U
  775. 000775 0612 07                       .db     07h             ;7
  776. 000776 0613 08                       .db     08h             ;8
  777. 000777 0614 00                       .db     0
  778. 000778 0615                  
  779. 000779 0615 00                       .db     0
  780. 000780 0616 38                       .db     38h             ;<
  781. 000781 0617 27                       .db     27h             ;K
  782. 000782 0618 17                       .db     17h             ;I
  783. 000783 0619 18                       .db     18h             ;O
  784. 000784 061A 0A                       .db     0Ah             ;0
  785. 000785 061B 09                       .db     09h             ;9
  786. 000786 061C 00                       .db     0
  787. 000787 061D 00                       .db     0
  788. 000788 061E 39                       .db     39h             ;>
  789. 000789 061F 3A                       .db     3ah             ;/
  790. 000790 0620 28                       .db     28h             ;L
  791. 000791 0621 29                       .db     29h             ; ';'
  792. 000792 0622 19                       .db     19h             ;P
  793. 000793 0623 0B                       .db     0bh             ;-
  794. 000794 0624 00                       .db     0
  795. 000795 0625                  
  796. 000796 0625 00                       .db     0
  797. 000797 0626 00                       .db     0
  798. 000798 0627 2A                       .db     2ah             ;'
  799. 000799 0628 00                       .db     0
  800. 000800 0629 1A                       .db     1ah             ;[
  801. 000801 062A 0C                       .db     0ch             ;=
  802. 000802 062B 00                       .db     0
  803. 000803 062C 00                       .db     0
  804. 000804 062D 62                       .db     62h             ;CAPS LOCK?
  805. 000805 062E 61                       .db     61h             ;Right SHIFT
  806. 000806 062F 44                       .db     44h             ;RETURN
  807. 000807 0630 1B                       .db     1bh             ;]
  808. 000808 0631 00                       .db     0
  809. 000809 0632 0D                       .db     0dh             ;\
  810. 000810 0633 00                       .db     0
  811. 000811 0634 00                       .db     0
  812. 000812 0635                  
  813. 000813 0635                          .rs     6
  814. 000814 063B 41                       .db     41h             ;Back SPACE
  815. 000815 063C 00                       .db     0
  816. 000816 063D 00                       .db     0
  817. 000817 063E 1D                       .db     1dh             ;1 keypad
  818. 000818 063F 00                       .db     0
  819. 000819 0640 2D                       .db     2dh             ;4 keypad
  820. 000820 0641 3D                       .db     3dh             ;7 keypad
  821. 000821 0642 00                       .db     0
  822. 000822 0643 00                       .db     0
  823. 000823 0644 00                       .db     0
  824. 000824 0645                  
  825. 000825 0645 0F                       .db     0fh             ;0 keypad
  826. 000826 0646 3C                       .db     3ch             ;dot keypad
  827. 000827 0647 1E                       .db     1eh             ;2 keypad
  828. 000828 0648 2E                       .db     2eh             ;5 keypad
  829. 000829 0649 2F                       .db     2fh             ;6 keypad
  830. 000830 064A 3E                       .db     3eh             ;8 keypad
  831. 000831 064B 45                       .db     45h             ;ESCAPE!
  832. 000832 064C 63                       .db     63h             ;Number Lock=CTRL
  833. 000833 064D 5A                       .db     5ah             ;F11=( keypad
  834. 000834 064E 5E                       .db     5eh             ;+ keypad
  835. 000835 064F 1F                       .db     1fh             ;3 keypad
  836. 000836 0650 4A                       .db     4ah             ;- keypad
  837. 000837 0651 5D                       .db     5dh             ;* keypad
  838. 000838 0652 3F                       .db     3fh             ;9 keypad
  839. 000839 0653 67                       .db     67h             ;scroll Lock=Right AMIGA
  840. 000840 0654 00                       .db     0
  841. 000841 0655                  ATtb2:
  842. 000842 0655                          .rs     3
  843. 000843 0658 56                       .db     56h             ;F7
  844. 000844 0659 66                       .db     66h             ;print screen=Left Amiga
  845. 000845 065A                          .rs     11
  846. 000846 0665                  
  847. 000847 0665 00                       .db     0
  848. 000848 0666 65                       .db     65h             ;Right ALT
  849. 000849 0667 00                       .db     0
  850. 000850 0668 00                       .db     0
  851. 000851 0669 67                       .db     67h             ;Right CTL=RIGHT AMIGA
  852. 000852 066A                          .rs     11
  853. 000853 0675                  
  854. 000854 0675                          .rs     10h
  855. 000855 0685                          
  856. 000856 0685                          .rs     10h
  857. 000857 0695                  
  858. 000858 0695                          .rs     10
  859. 000859 069F 5C                       .db     5ch             ;/key, supposedly
  860. 000860 06A0                          .rs     5
  861. 000861 06A5                  
  862. 000862 06A5                          .rs     10
  863. 000863 06AF 43                       .db     43h             ;Numeric Enter
  864. 000864 06B0                          .rs     5
  865. 000865 06B5                  
  866. 000866 06B5                          .rs     9
  867. 000867 06BE 1C                       .db     1ch             ;End=Mouse down
  868. 000868 06BF 00                       .db     0
  869. 000869 06C0 4F                       .db     4fh             ;Cursor Left
  870. 000870 06C1 0E                       .db     0eh             ;Home=Mouse up
  871. 000871 06C2 00                       .db     0
  872. 000872 06C3 00                       .db     0
  873. 000873 06C4 63                       .db     63h             ;MACRO key=control
  874. 000874 06C5                  
  875. 000875 06C5 2C                       .db     2ch             ;Insert=Mouse Left
  876. 000876 06C6 46                       .db     46h             ;Delete
  877. 000877 06C7 4D                       .db     4dh             ;Cursor Down
  878. 000878 06C8 00                       .db     0
  879. 000879 06C9 4E                       .db     4eh             ;Cursor Right
  880. 000880 06CA 4C                       .db     4ch             ;Cursor Up
  881. 000881 06CB                          .rs     4
  882. 000882 06CF 5F                       .db     5fh             ;Page Down=Help
  883. 000883 06D0 00                       .db     0
  884. 000884 06D1 66                       .db     66h             ;print screen=LEFT AMIGA
  885. 000885 06D2 47                       .db     47h             ;Page up=mouse right
  886. 000886 06D3 40                       .db     40h             ;Break=Space?
  887. 000887 06D4 00                       .db     0
  888. 000888 06D5                  XTtb1:
  889. 000889 06D5 00                       .db     0
  890. 000890 06D6 45                       .db     45h             ;esc
  891. 000891 06D7 01                       .db     01h             ;1
  892. 000892 06D8 02                       .db     02h             ;2
  893. 000893 06D9 03                       .db     03h             ;3
  894. 000894 06DA 04                       .db     04h             ;4
  895. 000895 06DB 05                       .db     05h             ;5
  896. 000896 06DC 06                       .db     06h             ;6
  897. 000897 06DD 07                       .db     07h             ;7
  898. 000898 06DE 08                       .db     08h             ;8
  899. 000899 06DF 09                       .db     09h             ;9
  900. 000900 06E0 0A                       .db     0ah             ;0
  901. 000901 06E1 0B                       .db     0bh             ;-
  902. 000902 06E2 0C                       .db     0ch             ;=
  903. 000903 06E3 41                       .db     41h             ;Backspace
  904. 000904 06E4 42                       .db     42h             ;Tab
  905. 000905 06E5                  
  906. 000906 06E5 10                       .db     10h             ;Q
  907. 000907 06E6 11                       .db     11h             ;W
  908. 000908 06E7 12                       .db     12h             ;E
  909. 000909 06E8 13                       .db     13h             ;R
  910. 000910 06E9 14                       .db     14h             ;T
  911. 000911 06EA 15                       .db     15h             ;Y
  912. 000912 06EB 16                       .db     16h             ;U
  913. 000913 06EC 17                       .db     17h             ;I
  914. 000914 06ED 18                       .db     18h             ;O
  915. 000915 06EE 19                       .db     19h             ;P
  916. 000916 06EF 1A                       .db     1Ah             ;[
  917. 000917 06F0 1B                       .db     1Bh             ;]
  918. 000918 06F1 44                       .db     44h             ;ENTER
  919. 000919 06F2 66                       .db     66h             ;L.CTL=LEFT AMIGA
  920. 000920 06F3 20                       .db     20h             ;A
  921. 000921 06F4 21                       .db     21h             ;S
  922. 000922 06F5                  
  923. 000923 06F5 22                       .db     22h             ;D
  924. 000924 06F6 23                       .db     23h             ;F
  925. 000925 06F7 24                       .db     24h             ;G
  926. 000926 06F8 25                       .db     25h             ;H
  927. 000927 06F9 26                       .db     26h             ;J
  928. 000928 06FA 27                       .db     27h             ;K
  929. 000929 06FB 28                       .db     28h             ;L
  930. 000930 06FC 29                       .db     29h             ;';'
  931. 000931 06FD 2A                       .db     2Ah             ;'
  932. 000932 06FE 00                       .db     00h             ;~
  933. 000933 06FF 60                       .db     60h             ;Left Shift
  934. 000934 0700 0D                       .db     0dh             ;\
  935. 000935 0701 31                       .db     31h             ;Z
  936. 000936 0702 32                       .db     32h             ;X
  937. 000937 0703 33                       .db     33h             ;C
  938. 000938 0704 34                       .db     34h             ;V
  939. 000939 0705                  
  940. 000940 0705 35                       .db     35h             ;B
  941. 000941 0706 36                       .db     36h             ;N
  942. 000942 0707 37                       .db     37h             ;M
  943. 000943 0708 38                       .db     38h             ;<
  944. 000944 0709 39                       .db     39h             ;>
  945. 000945 070A 3A                       .db     3Ah             ;/
  946. 000946 070B 61                       .db     61h             ;Right Shift
  947. 000947 070C 5D                       .db     5dh             ;Numeric *
  948. 000948 070D 64                       .db     64h             ;Left Alt
  949. 000949 070E 40                       .db     40h             ;space
  950. 000950 070F 62                       .db     62h             ;CapsLock
  951. 000951 0710 50                       .db     50h             ;F1
  952. 000952 0711 51                       .db     51h             ;F2
  953. 000953 0712 52                       .db     52h             ;F3
  954. 000954 0713 53                       .db     53h             ;F4
  955. 000955 0714 54                       .db     54h             ;F5
  956. 000956 0715                  
  957. 000957 0715 55                       .db     55h             ;F6
  958. 000958 0716 56                       .db     56h             ;F7
  959. 000959 0717 57                       .db     57h             ;F8
  960. 000960 0718 58                       .db     58h             ;F9
  961. 000961 0719 59                       .db     59h             ;F10
  962. 000962 071A 63                       .db     63h             ;Number Lock=Control
  963. 000963 071B 67                       .db     67h             ;Scroll Lock=Right Amiga
  964. 000964 071C 3D                       .db     3dh             ;Numeric 7
  965. 000965 071D 3E                       .db     3eh             ;* 8
  966. 000966 071E 3F                       .db     3fh             ;* 9
  967. 000967 071F 4A                       .db     4ah             ;* -
  968. 000968 0720 2D                       .db     2dh             ;* 4
  969. 000969 0721 2E                       .db     2eh             ;* 5
  970. 000970 0722 2F                       .db     2fh             ;* 6
  971. 000971 0723 5E                       .db     5eh             ;* +
  972. 000972 0724 1D                       .db     1dh             ;* 1
  973. 000973 0725                  
  974. 000974 0725 1E                       .db     1eh             ;* 2
  975. 000975 0726 1F                       .db     1fh             ;* 3
  976. 000976 0727 0F                       .db     0fh             ;* 0
  977. 000977 0728 3C                       .db     3ch             ;* .
  978. 000978 0729 63                       .db     63h             ;print screen=CONTROL
  979. 000979 072A 00                       .db     0
  980. 000980 072B 00                       .db     0
  981. 000981 072C 5A                       .db     5ah             ;F11=Numeric (
  982. 000982 072D 5B                       .db     5bh             ;F12=Numeric )
  983. 000983 072E                          .rs     7
  984. 000984 0735                  
  985. 000985 0735                          .rs     10h
  986. 000986 0745                  
  987. 000987 0745                          .rs     10h
  988. 000988 0755                  XTtb2:
  989. 000989 0755                          .rs     10h
  990. 000990 0765                  
  991. 000991 0765                          .rs     12
  992. 000992 0771 43                       .db     43h             ;Numeric Enter
  993. 000993 0772 67                       .db     67h             ;Right Control=RIGHT AMIGA
  994. 000994 0773                          .rs     2
  995. 000995 0775                  
  996. 000996 0775                          .rs     10h
  997. 000997 0785                          
  998. 000998 0785                          .rs     5
  999. 000999 078A 5C                       .db     5ch             ;Numeric /key
  1000. 001000 078B 00                       .db     0
  1001. 001001 078C 66                       .db     66h             ;Print Screeen=Left Amiga
  1002. 001002 078D 65                       .db     65h             ;Right Alt
  1003. 001003 078E                          .rs     7
  1004. 001004 0795                  
  1005. 001005 0795                          .rs     6
  1006. 001006 079B 5F                       .db     5fh             ;BREAK=HELP!
  1007. 001007 079C 0E                       .db     0eh             ;Home=MOUSE UP
  1008. 001008 079D 4C                       .db     4ch             ;cursor up
  1009. 001009 079E 47                       .db     47h             ;pageup=mouse right
  1010. 001010 079F 00                       .db     0
  1011. 001011 07A0 4F                       .db     4fh             ;cursor left
  1012. 001012 07A1 00                       .db     0
  1013. 001013 07A2 4E                       .db     4eh             ;cursor right
  1014. 001014 07A3 00                       .db     0
  1015. 001015 07A4 1C                       .db     1ch             ;End=mouse down
  1016. 001016 07A5                  
  1017. 001017 07A5 4D                       .db     4dh             ;cursor down
  1018. 001018 07A6 5F                       .db     5fh             ;page down=HELP!
  1019. 001019 07A7 2C                       .db     2ch             ;insert=mouse left
  1020. 001020 07A8 46                       .db     46h             ;delete
  1021. 001021 07A9                          .rs     12
  1022. 001022 07B5                         
  1023. 001023 07B5                          .rs     15
  1024. 001024 07C4 63                       .db     63h             ;Macro=control
  1025. 001025 07C5                  
  1026. 001026 07C5                          .rs     10h
  1027. 001027 07D5                  
  1028. 001028 07D5                          .end    0
  1029.  
  1030. AC      =00D6  ET2     =00AD  P0.0    =0080  RXD     =00B0  TMOD    =0089  
  1031. ACC     =00E0  EX0     =00A8  P0.1    =0081  SBUF    =0099  TR0     =008C  
  1032. ACC.0   =00E0  EX1     =00AA  P0.2    =0082  SCON    =0098  TR1     =008E  
  1033. ACC.1   =00E1  EXEN2   =00CB  P0.3    =0083  SCON.0  =0098  TR2     =00CA  
  1034. ACC.2   =00E2  EXF2    =00CE  P0.4    =0084  SCON.1  =0099  TRANSMIT=03BF  
  1035. ACC.3   =00E3  F       =058A  P0.5    =0085  SCON.2  =009A  TRANSOK =03C3  
  1036. ACC.4   =00E4  F0      =00D5  P0.6    =0086  SCON.3  =009B  TRANSOK2=03CB  
  1037. ACC.5   =00E5  FREE    =04CE  P0.7    =0087  SCON.4  =009C  TRANSOK3=03FE  
  1038. ACC.6   =00E6  G       =0592  P1      =0090  SCON.5  =009D  TRANSOK4=03F3  
  1039. ACC.7   =00E7  GOTIT   =05B0  P1.0    =0090  SCON.6  =009E  TRSET   =04BE  
  1040. ACLK    =0093  H       =059A  P1.1    =0091  SCON.7  =009F  TT1     =05BF  
  1041. ACTUAL2 =057B  HARDRESE=054F  P1.2    =0092  SEND4   =0325  TT2     =05C7  
  1042. ACTUALTR=056F  HOLD    =054C  P1.3    =0093  SEND5   =032D  TT3     =05CF  
  1043. ADAT    =0094  HSLOOP  =0561  P1.4    =0094  SEND6   =0337  TXD     =00B1  
  1044. AMIGACHA=0052  I       =05A2  P1.5    =0095  SEND7   =033C  WAITSHAK=05AB  
  1045. ARESET  =0095  IE      =00A8  P1.6    =0096  SEND77  =033F  WR1     =04E1  
  1046. ATDATAB =02C3  IE.0    =00A8  P1.7    =0097  SEND78  =0344  WR11    =051F  
  1047. ATDOWN  =030F  IE.1    =00A9  P2      =00A0  SEND79  =0347  WR2     =04E9  
  1048. ATERROR =02B4  IE.2    =00AA  P2.0    =00A0  SEND7A  =034A  WR22    =0527  
  1049. ATGETKEY=0290  IE.3    =00AB  P2.1    =00A1  SEND8   =034F  WR3     =04F1  
  1050. ATNE0   =0308  IE.4    =00AC  P2.2    =00A2  SEND9   =0355  WR33    =052F  
  1051. ATNE012 =0302  IE.5    =00AD  P2.3    =00A3  SENDTOAT=031F  WR4     =04F9  
  1052. ATNE0F0 =02FC  IE.7    =00AF  P2.4    =00A4  SKIPLIGH=03F2  WR44    =0537  
  1053. ATNE1   =02E0  IE0     =0089  P2.5    =00A5  SM0     =009F  WR5     =0502  
  1054. ATNEF12 =02F6  IE1     =008B  P2.6    =00A6  SM1     =009E  WR55    =0540  
  1055. ATNSTART=029D  INIT    =0000  P2.7    =00A7  SM2     =009D  XT7BIT  =004A  
  1056. ATNSTOP =02BA  INT0    =00B2  P3      =00B0  SMALL1  =0491  XTCAP   =03D6  
  1057. ATPARITY=0048  INT1    =00B3  P3.0    =00B0  SMALLDEL=0487  XTGETKEY=035C  
  1058. ATPOWERU=0277  IP      =00B8  P3.1    =00B1  SP      =0081  XTLOOKUP=03A7  
  1059. ATSTYLE =02CB  IP.0    =00B8  P3.2    =00B2  START   =0200  XTN2A   =039A  
  1060. ATTB1   =05D5  IP.1    =00B9  P3.3    =00B3  SYNC    =022D  XTN36   =03A4  
  1061. ATTB2   =0655  IP.2    =00BA  P3.4    =00B4  SYNC2   =0237  XTNAA   =0395  
  1062. ATUP    =0317  IP.3    =00BB  P3.5    =00B5  SYNC3   =023A  XTNB6   =039F  
  1063. ATWAIT  =02C6  IP.4    =00BC  P3.6    =00B6  T2CON   =00C8  XTNE0   =03B7  
  1064. ATWAITC0=0294  IP.5    =00BD  P3.7    =00B7  T2CON.0 =00C8  XTNE1   =038B  
  1065. ATWAITC1=02A0  IT0     =0088  PARITYEV=02AC  T2CON.1 =00C9  XTPOWERU=0263  
  1066. B       =00F0  IT1     =008A  PARITYOD=02B0  T2CON.2 =00CA  XTRESET =0269  
  1067. B.0     =00F0  KCLK    =0090  PAUSE   =02A7  T2CON.3 =00CB  XTSTYLE =037A  
  1068. B.1     =00F1  KDAT    =0091  PCON    =0087  T2CON.4 =00CC  XTTB1   =06D5  
  1069. B.2     =00F2  KMDOWNDO=0444  PS      =00BC  T2CON.5 =00CD  XTTB2   =0755  
  1070. B.3     =00F3  KMDOWNUP=0439  PSW     =00D0  T2CON.6 =00CE  XTTEST  =0257  
  1071. B.4     =00F4  KMLEFTDO=0460  PSW.0   =00D0  T2CON.7 =00CF  XTW1    =0360  
  1072. B.5     =00F5  KMLEFTUP=0455  PSW.1   =00D1  T3      =05D4  XTW2    =0363  
  1073. B.6     =00F6  KMRHTDOW=047C  PSW.2   =00D2  TB8     =009B  XTW3    =0366  
  1074. B.7     =00F7  KMRHTUP =0471  PSW.3   =00D3  TCLK    =00CC  XTW4    =0369  
  1075. CAPBIT  =0042  KMUPDOWN=0428  PSW.4   =00D4  TCON    =0088  XTW5    =036C  
  1076. CAPDOWN =0043  KMUPUP  =041D  PSW.5   =00D5  TCON.0  =0088  XTW6    =0372  
  1077. CAUGHT1 =050E  KRESET  =0092  PSW.6   =00D6  TCON.1  =0089  
  1078. CAUGHT2 =054C  KSTYLE  =004B  PSW.7   =00D7  TCON.2  =008A  
  1079. CHARBAD =0050  KSWITCH =0097  PT0     =00B9  TCON.3  =008B  
  1080. CONTROL =0045  LAMIGA  =0046  PT1     =00BB  TCON.4  =008C  
  1081. CPRL2   =00C8  LL      =0272  PT2     =00BD  TCON.5  =008D  
  1082. CT2     =00C9  MAKE    =0049  PX0     =00B8  TCON.6  =008E  
  1083. CTRLDOWN=0044  MAYBEFRE=04C6  PX1     =00BA  TCON.7  =008F  
  1084. CY      =00D7  NOCONTRO=0411  RAMIGA  =0047  TF0     =008D  
  1085. DELAY   =0576  NOMDOWN =044F  RB8     =009A  TF1     =008F  
  1086. DLY     =0573  NOMLEFT =046B  RCAP2H  =00CB  TF2     =00CF  
  1087. DONTRANS=03BC  NOMUP   =0433  RCAP2L  =00CA  TH0     =008C  
  1088. DPH     =0083  NOTSPECI=0499  RCLK    =00CD  TH1     =008D  
  1089. DPL     =0082  NRSET1  =04AE  REN     =009C  TH2     =00CD  
  1090. DUMMY   =04CF  NRSET2  =04B7  RESETINT=04D0  TI      =0099  
  1091. EA      =00AF  OLDCHAR =0051  RESETWAR=04D2  TIMER1IN=05B4  
  1092. ES      =00AC  OV      =00D2  RI      =0098  TL0     =008A  
  1093. ET0     =00A9  P       =00D0  RS0     =00D3  TL1     =008B  
  1094. ET1     =00AB  P0      =0080  RS1     =00D4  TL2     =00CC  
  1095. @\Rogue\Monster\
  1096. else
  1097.   echo "shar: Will not over write key.list"
  1098. fi
  1099. if `test ! -s key.obj`
  1100. then
  1101. echo "x - key.obj"
  1102. cat > key.obj << '@\Rogue\Monster\'
  1103. :03000000020200F9
  1104. :030003000204D024
  1105. :03001B000205B427
  1106. :1002000075891175880575A800D2AFD2ABD2A8D276
  1107. :10021000B2D2B97581307590FFC28EC28FC28CC2C6
  1108. :100220008DC243C244C242D245D246D247758B00EA
  1109. :10023000758D007902D28E2094FD3094FDC28E74AB
  1110. :10024000FDB16F74FEB16F30971920912A758C0043
  1111. :10025000758A00C28DD28C208D093091FAC28CC271
  1112. :100260008D8014C24BC28DC290308DFDD290C28C55
  1113. :10027000C28D715C02037AD24B74FF711F74F671E8
  1114. :100280001F74ED711F7402711F74F4711F0202CB91
  1115. :10029000780BD2902090FD18B80A028029B8001A75
  1116. :1002A0003090FDC2907814D8FE20D004304805224A
  1117. :1002B0002048012274FE711F80D6B80106A29192D7
  1118. :1002C000488003A291133090FD80C95190B4E11091
  1119. :1002D000519051905190519051905190519080EB8C
  1120. :1002E0009005D5B4E0229006555190B4F00E51908F
  1121. :1002F000B412030202CBB4591E0202CBB4120302A1
  1122. :1003000002CBB4590A0202CBB4F004519080089396
  1123. :10031000C2E771BF0202CB93D2E771BF0202CBD218
  1124. :1003200090C29178082090FDA2E09291033090FD58
  1125. :1003300018B800F1A2D0B32090FD92913090FD202A
  1126. :1003400090FDD2913090FD2090FD3090FD7808D83E
  1127. :10035000FEC2907814D8FED290519022D2917808A3
  1128. :100360002090FD3090FD2090FD3090FD2090FDA26A
  1129. :1003700091133090FDD8F5C29122715CB4E10C71FB
  1130. :100380005C715C715C715C715C80EFB4E029715CE4
  1131. :10039000B4AA0280E5B42A0280E0B4B60280DBB4DD
  1132. :1003A000360280D6900755A2E7924AC2E793A24A46
  1133. :1003B00092E771BF02037A9006D580EBD0E022B5B8
  1134. :1003C000510122B46205F551D24322B4E230E55125
  1135. :1003D000304B03B4621DC243B2427462A242B39274
  1136. :1003E000E7B16F304B0C74ED711F7402A24292E2C0
  1137. :1003F000711F22C244C2437463D2E7B16F22F55128
  1138. :10040000304B0E30430B204408D2447463B16FE587
  1139. :1004100051A2E79249C2E7B40E1930490B74CCB12E
  1140. :100420006F918774E7B16F227467B16F9187744CD5
  1141. :10043000B16F22B41C1930490B74CDB16F74E791C0
  1142. :1004400087B16F227467B16F9187744DB16F22B419
  1143. :100450002C1930490B74CFB16F918774E7B16F22BB
  1144. :100460007467B16F9187744FB16F22B4472B3049D5
  1145. :100470000B74CEB16F918774E7B16F227467B16F5F
  1146. :100480009187744EB16F22758C00758A00C28DD22F
  1147. :100490008C308DFDC28DC28C22E551B16FE551A229
  1148. :1004A000E79249C2E7B46306A24992458010B46658
  1149. :1004B00006A24992468007B46704A2499247304594
  1150. :1004C000052044028008204605204702800422328D
  1151. :1004D00091CFC28DE5787902758A00758C00F47829
  1152. :1004E0000823A2E7929475F008D5F0FDC29375F049
  1153. :1004F00008D5F0FDD29375F00AD5F0FDD8E3D2947B
  1154. :10050000D28C309409308DFAC28DD9F68041C28CDC
  1155. :10051000C28DE5787904758A00758C00F47808231B
  1156. :10052000A2E7929475F008D5F0FDC29375F008D556
  1157. :10053000F0FDD29375F00AD5F0FDD8E3D294D28CB9
  1158. :10054000309409308DFAC28DD9F680033094FDC203
  1159. :100550008CC28DC295C293790F758C00758A00D2BA
  1160. :100560008C308DFDC28DD9F9C28DC28C020200F58E
  1161. :1005700052780575F000D5F0FDD8F8E552C25079F3
  1162. :1005800002758B00758D00F4780823A2E7929475AC
  1163. :10059000F008D5F0FDC29375F008D5F0FDD2937543
  1164. :1005A000F00AD5F0FDD8E3D294D28E2094FDC28E0D
  1165. :1005B0003094FD22D91E7902D250C29475F008D52C
  1166. :1005C000F0FDC29375F008D5F0FDD29375F00AD511
  1167. :1005D000F0FDD29432005800545250515B005957EC
  1168. :1005E00055534200000064600066100100000031B5
  1169. :1005F0002120110200003332221204030000403493
  1170. :100600002314130500003635252415060000003795
  1171. :10061000261607080000382717180A090000393A7B
  1172. :100620002829190B0000002A001A0C0000626144FE
  1173. :050630001B000D00009D
  1174. :10063B004100001D002D3D0000000F3C1E2E2F3EE3
  1175. :0A064B0045635A5E1F4A5D3F6700D9
  1176. :020658005666E4
  1177. :050665000065000067C4
  1178. :01069F005CFE
  1179. :0106AF004307
  1180. :0D06BE001C004F0E0000632C464D004E4CFA
  1181. :1006CF005F00664740000045010203040506070866
  1182. :1006DF00090A0B0C41421011121314151617181991
  1183. :1006EF001A1B4466202122232425262728292A0085
  1184. :1006FF00600D3132333435363738393A615D644005
  1185. :10070F00625051525354555657585963673D3E3FA7
  1186. :0F071F004A2D2E2F5E1D1E1F0F3C6300005A5BDC
  1187. :020771004367DC
  1188. :04078A005C00666544
  1189. :0E079B005F0E4C47004F004E001C4D5F2C4679
  1190. :0107C40063D1
  1191. :00000001FF
  1192.